Generalize integration_by_parts#1674
Generalize integration_by_parts#1674IshiguroYoshihiro wants to merge 26 commits intomath-comp:masterfrom
Conversation
|
Are not all 4 versions the same, the only difference being whether the minus is inside or outside the integral? |
If you said that these lemmas can be proved with one of them, I think it is no. |
949b179 to
0802b9c
Compare
Indeed |
To give a bit of context, these lemmas have been written this way after having been tested to formalize the Gamma function. Maybe their apparent specialization is the result of practical considerations? @IshiguroYoshihiro can you confirm? (Or am I remembering wrong?) |
Tragicus
left a comment
There was a problem hiding this comment.
Sorry, I am back.
One way to factorize would be to ask for the relevant functions to have constant sign. I was also wondering whether we want to generalize over the interval, instead of [a, +oo[. We would require that the relevant functions are derivable on the interior of the interval and have limits at the boundaries.
@affeldt-aist Some of the following suggestions are quite ugly but save a lot of time, what do you think?
theories/ftc.v
Outdated
| rewrite (@integration_by_partsy_le0_ge0 R (- F)%R G (- f)%R g a (- FGoo))//. | ||
| - rewrite oppeD; last exact: fin_num_adde_defr. | ||
| rewrite -EFinN opprD 2!opprK mulNr. | ||
| by under eq_integral do rewrite mulNr EFinN oppeK. | ||
| - by move=> ?; apply: cvgN; exact: cf. | ||
| - exact: derivable_oy_continuous_bndN. | ||
| - by move=> ? ?; rewrite fctE derive1N ?Ff//; move: Foy => [+ _]; apply. |
There was a problem hiding this comment.
| rewrite (@integration_by_partsy_le0_ge0 R (- F)%R G (- f)%R g a (- FGoo))//. | |
| - rewrite oppeD; last exact: fin_num_adde_defr. | |
| rewrite -EFinN opprD 2!opprK mulNr. | |
| by under eq_integral do rewrite mulNr EFinN oppeK. | |
| - by move=> ?; apply: cvgN; exact: cf. | |
| - exact: derivable_oy_continuous_bndN. | |
| - by move=> ? ?; rewrite fctE derive1N ?Ff//; move: Foy => [+ _]; apply. | |
| rewrite (@integration_by_partsy_le0_ge0 R (- F)%R G (- f)%R g a (- FGoo))//. | |
| - rewrite oppeD; last exact: fin_num_adde_defr. | |
| rewrite -EFinN opprD 2!opprK mulNr. | |
| by under eq_integral do rewrite mulNr EFinN oppeK. | |
| - by move=> ?; apply: cvgN; exact: cf. | |
| - exact: derivable_oy_continuous_bndN. | |
| - by move=> ? ?; rewrite fctE derive1N ?Ff => [//|//|]; apply: Foy.1. |
.6s faster
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
Co-authored-by: Quentin VERMANDE <quentin.vermande@orange.fr>
FYI, here is the PR that formalizes the Gamma function:
This has not been tested yet (by lack of time). :-(
We have merged all of them. Thanks for identifying the performance issues, that helps. |
|
I suggest keeping 4 lemmas as is, and additionally, provide a unified interface lemma that use the constant_sign predicate |
5036126 to
34697b2
Compare
|
looking at the code for a while, I noticed there can be some helper lemmas added: |
|
|
leading to generalization of |
on our side, we were trying to get rid of |
that sounds better |
I have changed my mind to endorse |
t6s
left a comment
There was a problem hiding this comment.
The main lemmas look good.
After trying to remove subset_itvoSo_cSc, this PR will be ready for merging.
|
|
||
| End itv_realDomainType. | ||
|
|
||
| (* generalization of |
There was a problem hiding this comment.
This lemma can be an instance of the monotonicity of the closure operator.
|
|
||
| End integration_by_partsy_ge0. | ||
|
|
||
| Section integration_by_partsy_le0. |
There was a problem hiding this comment.
This section appears to be sharing many things with the previous one.
Maybe merge the two?
|
Even though we are making progress, in the interest of the release, I would like to postpone to the next release (that will happen anyway faster than this one). Thank for your understanding. |
|
IshiguroYoshihiro#69 rebased onto master |
Motivation for this change
Add a part of generalized version of integration by parts for unbound intervals
`[a, +oo[.This PR is over #1656 and #1662.
I don't sure that I should add 4 more lemmas and complete all variation of integration by parts for unbound intervals.
I think that 8 similar lemmas would be a mess. So, I'd like to somehow make them up into one or two lemmas, but I don't have an idea.
Checklist
CHANGELOG_UNRELEASED.mdReference: How to document
Merge policy
As a rule of thumb:
all compile are preferentially merged into master.
Reminder to reviewers